package com.rfid.project.model;

import javax.persistence.*;

import biz.core.KeyValue;
import biz.util.KeyValueUtil;
import biz.util.StringUtil;
import biz.core.IdEntity;

import java.util.Date;
import java.util.ArrayList;
import java.util.List;

@Entity
public class AftersaleRecord extends IdEntity {

	// 登记人
	@ManyToOne
	@JoinColumn(name = "RegisterPersonID")
	private People registerPerson;

	// 问题描述
	private String issueDescription;

	// 是否过保
	private String outOfWarrantySign;

	// 登记时间
	private Date registerTime;

	// 期望完成时间
	private Date expectFinishDate;

	// 所属项目
	@ManyToOne
	@JoinColumn(name = "ProjectID")
	private Project project;

	// 关联产品
	@ManyToOne
	@JoinColumn(name = "ProductID")
	private Product product;

	// 客户
	@ManyToOne
	@JoinColumn(name = "CustomerID")
	private Customer customer;

	// 客户名称
	private String customerName;

	// 联系人
	private String contactPerson;

	// 联系方式
	private String contactPersonTel;

	// 处理人
	@ManyToOne
	@JoinColumn(name = "HandlePersonID")
	private People handlePerson;

	// 售后处理类型
	@ManyToOne
	@JoinColumn(name = "AftersaleHandleTypeID")
	private AftersaleHandleType aftersaleHandleType;

	// 状态
	private String status;

	// 实际完成时间
	private Date actualFinishTime;

	// 售后处理工时
	private Integer consumeWorktime;

	// 产品序列号
	private String productSequenceNo;

	// 审核人
	@ManyToOne
	@JoinColumn(name = "CheckPersonID")
	private People checkPerson;

	// 审核时间
	private Date checkTime;

	// 返修日期
	private Date returnDate;

	// 修好日期
	private Date finishDate;

	// 交付日期
	private Date deliveryDate;

	// 问题原因
	private String issueReason;

	// 维修费用
	private Double handleFee;

	// 处理描述
	private String handleDescription;

	// 维修成本
	private Double handleCost;

	// 维修成本说明
	private String handleCostDescription;

	// 备注
	private String remark;

	public People getRegisterPerson() {
		return registerPerson;
	}

	public void setRegisterPerson(People registerPerson) {
		this.registerPerson = registerPerson;
	}

	public String getIssueDescription() {
		return issueDescription;
	}

	public void setIssueDescription(String issueDescription) {
		this.issueDescription = issueDescription;
	}

	public String getOutOfWarrantySign() {
		return outOfWarrantySign;
	}

	public void setOutOfWarrantySign(String outOfWarrantySign) {
		this.outOfWarrantySign = outOfWarrantySign;
	}

	public Date getRegisterTime() {
		return registerTime;
	}

	public void setRegisterTime(Date registerTime) {
		this.registerTime = registerTime;
	}

	public Date getExpectFinishDate() {
		return expectFinishDate;
	}

	public void setExpectFinishDate(Date expectFinishDate) {
		this.expectFinishDate = expectFinishDate;
	}

	public Project getProject() {
		return project;
	}

	public void setProject(Project project) {
		this.project = project;
	}

	public Product getProduct() {
		return product;
	}

	public void setProduct(Product product) {
		this.product = product;
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getContactPerson() {
		return contactPerson;
	}

	public void setContactPerson(String contactPerson) {
		this.contactPerson = contactPerson;
	}

	public String getContactPersonTel() {
		return contactPersonTel;
	}

	public void setContactPersonTel(String contactPersonTel) {
		this.contactPersonTel = contactPersonTel;
	}

	public People getHandlePerson() {
		return handlePerson;
	}

	public void setHandlePerson(People handlePerson) {
		this.handlePerson = handlePerson;
	}

	public AftersaleHandleType getAftersaleHandleType() {
		return aftersaleHandleType;
	}

	public void setAftersaleHandleType(AftersaleHandleType aftersaleHandleType) {
		this.aftersaleHandleType = aftersaleHandleType;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Date getActualFinishTime() {
		return actualFinishTime;
	}

	public void setActualFinishTime(Date actualFinishTime) {
		this.actualFinishTime = actualFinishTime;
	}

	public Integer getConsumeWorktime() {
		return consumeWorktime;
	}

	public void setConsumeWorktime(Integer consumeWorktime) {
		this.consumeWorktime = consumeWorktime;
	}

	public String getProductSequenceNo() {
		return productSequenceNo;
	}

	public void setProductSequenceNo(String productSequenceNo) {
		this.productSequenceNo = productSequenceNo;
	}

	public People getCheckPerson() {
		return checkPerson;
	}

	public void setCheckPerson(People checkPerson) {
		this.checkPerson = checkPerson;
	}

	public Date getCheckTime() {
		return checkTime;
	}

	public void setCheckTime(Date checkTime) {
		this.checkTime = checkTime;
	}

	public Date getReturnDate() {
		return returnDate;
	}

	public void setReturnDate(Date returnDate) {
		this.returnDate = returnDate;
	}

	public Date getFinishDate() {
		return finishDate;
	}

	public void setFinishDate(Date finishDate) {
		this.finishDate = finishDate;
	}

	public Date getDeliveryDate() {
		return deliveryDate;
	}

	public void setDeliveryDate(Date deliveryDate) {
		this.deliveryDate = deliveryDate;
	}

	public String getIssueReason() {
		return issueReason;
	}

	public void setIssueReason(String issueReason) {
		this.issueReason = issueReason;
	}

	public Double getHandleFee() {
		return handleFee;
	}

	public void setHandleFee(Double handleFee) {
		this.handleFee = handleFee;
	}

	public String getHandleDescription() {
		return handleDescription;
	}

	public void setHandleDescription(String handleDescription) {
		this.handleDescription = handleDescription;
	}

	public Double getHandleCost() {
		return handleCost;
	}

	public void setHandleCost(Double handleCost) {
		this.handleCost = handleCost;
	}

	public String getHandleCostDescription() {
		return handleCostDescription;
	}

	public void setHandleCostDescription(String handleCostDescription) {
		this.handleCostDescription = handleCostDescription;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

}
